package com.campus_activity.campus_activity.service;

import com.campus_activity.campus_activity.common.PageResult;
import com.campus_activity.campus_activity.common.R;
import com.campus_activity.campus_activity.domain.dto.ActivityDTO;
import com.campus_activity.campus_activity.domain.dto.ActivityPageQueryDTO;
import com.campus_activity.campus_activity.domain.po.Activity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.campus_activity.campus_activity.domain.vo.ActivityDetailVO;
import com.campus_activity.campus_activity.domain.vo.ActivityTicketVO;
import com.campus_activity.campus_activity.domain.vo.ActivityVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 73493
 * @description 针对表【t_activity(活动表)】的数据库操作Service
 * @createDate 2023-04-24 17:04:42
 */
public interface ActivityService extends IService<Activity> {

    /**
     * 分页查询互动
     *
     * @param activityPageQueryDTO
     * @return
     */
    PageResult<ActivityVO> listActivity(ActivityPageQueryDTO activityPageQueryDTO);

    /**
     * 发表活动
     *
     * @param activityDTO
     * @return
     */
    boolean publishActivity(ActivityDTO activityDTO);

    /**
     * 获取活动详细信息
     *
     * @param id
     * @return
     */
    ActivityDetailVO getActivityDetail(Long id);

    /**
     * 取消活动
     *
     * @param id
     * @return
     */
    boolean cancelActivity(Long id);

    /**
     * 退出活动
     *
     * @param id
     * @return
     */
    boolean exitActivity(Long id);

    PageResult<ActivityVO> listActivityPublishHistory(ActivityPageQueryDTO activityPageQueryDTO);

    ActivityTicketVO getActivityTicket(Long id);

    PageResult<ActivityVO> listActivityHistory(ActivityPageQueryDTO activityPageQueryDTO);
}
